The invention relates to an incremental coder and to a method for determining the binary signals representing increments of relative position of two elements of the coder, the two elements being mobile with respect to one another. These coders, for example optical and angular, are used like potentiometers, for example for the manual control of electronic apparatuses which are sensitive to an input parameter that can vary continuously or almost continuously, but they are much more reliable than potentiometers. Typically, in an application in respect of aeronautical equipment, it is possible to use an optical angular coder to indicate to an automatic piloting computer an altitude or speed setpoint that the pilot chooses by actuating a control button which causes the coder to revolve. The reliability of the coder and of the information that it delivers is then an essential element of the coder.
An optical angular coder typically consists of a disc bearing regular marks, this disc being rotated using a (for example manual) control button. A photoelectric cell fixed in front of the disc detects the march past of the successive marks when the control button causes the disc to revolve. The marks are typically apertures in an opaque disc, a light-emitting diode being placed on one side of the disc and the photoelectric cell being placed on the other side.
Each passby of a mark constitutes an increment of one unit in the counting of the rotation of the disc. The angular resolution is determined by the angular interval of the marks arranged regularly over a revolution of the disc. To detect at one and the same time increments and decrements of angle of rotation when the direction of rotation is reversed, two photoelectric cells are provided, mutually offset physically by an odd number of quarter intervals. Thus, the lit/unlit logic states of the two cells are coded on two bits which successively take the following four values: 00, 01, 11, 10 when the disc rotates in one direction and the following four successive values 00, 10, 11, 01 when the disc rotates in the other, so that it is easy to determine, not only the occurrence of an increment of rotation (change of state of one of the bits) but also the direction of rotation (by comparison between a state of the cells and the immediately earlier state).
This type of coder is formed of an assemblage of mechanical parts and of optoelectronic components that it is tricky to fine tune. It is advantageous to reuse one and the same coder for several applications so as to standardize it and thus reduce production costs by virtue of bigger batches. The development costs can moreover be better distributed over a larger number of coders. When standardizing, a problem is encountered when the number of intervals of the coder varies from one application to another. For example, if the coder allows 48 angular positions for a rotation of a complete revolution, it is possible to use this coder for an application in which only 12 or 24 positions are necessary. Without changing the coding disc which preserves 48 binary increments, it is possible to carry out a simple mechanical adaptation to define 12 or 24 angular positions on which the coder can stop in a stable manner. In the succession of the above-described binary codings, only one value out of two will be used for a 24 position coder and one value out of four for a 12 position coder. It would be possible to adjust each coder of a batch individually so as to define the values chosen from among the four binary values but this increases the unit cost of a coder.
Moreover, let us take the example of a coder comprising two binary increments per stable positions. If during the enabling of the coder, the latter is at a stable position, then between this initial position and any other stable position there will be an even number of binary edges for the two codings. The difference between the current word and the origin word will therefore be even. A simple division by two will make it possible to determine in a definite manner a value of variation of stable positions. If on the other hand, during the enabling of the coder, the latter is not at a stable position, then between this initial position and any other stable position there will be an odd number of binary edges for the two codings and a simple division by two will not make it possible to correctly count the variations of stable positions notably upon reversal of the direction of motion of the coder.